一、应用场景
用户管理是物联云平台提供的修改C端用户登录密码的功能。包含用户在已登录状态下修改账号的登录密码,用户在未登录状态下重置账号的登录密码。
用户可通过邮箱或者手机号进行重置密码。用户通过邮箱或手机号重置密码都需要先在物联云平台管理台配置对应的消息模板。
邮箱重置密码物联云平台提供两种方式,分别为邮件验证码和重置链接的方式进行修改。通过邮件验证码的方式进行修改时,需要用户填入接收到的验证码和邮箱账号进行修改。通过重置链接的方式进行修改,需要用户点击邮件中的链接,在链接中修改登录密码。
手机重置密码物联云平台提供通过短信验证码的方式进行修改。通过短信验证码的方式进行修改时,需要用户填入接收到的验证码和手机号进行修改。
用户在登录后可以修改个人的登录密码。
用户在忘记密码的情况下,可以通过邮箱、手机号重置登录密码。
二、功能说明
企业提供给用户通过邮箱重置密码的功能时,需要前往物联云平台管理台【应用中心->集成->邮件服务】中选择企业使用的邮箱渠道。完成后需要配置【邮件模板->系统推荐->重置密码】和【邮件模板->系统推荐->邮箱找回密码】对应的模板信息。未配置邮件模板的情况下,平台会使用默认的模板发送邮件。
用户通过重置链接修改密码时,会在邮箱中接收到物联云平台发送的重置邮件。用户需要在重置邮件中点击重置链接进行修改后,使用新密码登入平台中。
用户通过邮件验证码修改密码时,会在邮箱中接收到物联云平台发送的找回密码邮件。用户需要将邮件中的验证码填入输入框中,和新密码一起提交后,使用新密码登入平台中。
用户使用手机号进行重置密码时,会接收到物联云平台发送的重置密码短信。用户需要将邮件中的验证码填入输入框中,和新密码一起提交后,使用新密码登入平台中。
三、前提条件
1.重置密码需要用户的账号信息中已添加邮箱或手机号。
2.完成邮件服务和邮件模板的配置,并保证邮件服务的可用性。
3.完成短信服务和短信模板的配置,并保证短信服务的可用性。
4.用户注册时提供的邮箱或手机可以接收到信息。
四、关键流程
4.1 用户通过手机找回密码
流程说明:
- 首先,C端APP用户 在忘记密码的情况下向物联网中台发起 获取找回密码手机图片验证码 请求,获得手机图片验证码地址并显示在App上,该请求适用于在 获取找回密码手机验证码 报获取次数超过阈值的时才进行调用。
- 其次,C端APP用户 向物联网中台发起 获取找回密码手机验证码 请求,物联网中台接收到请求后产生与手机号码绑定的手机验证码并通过短信平台发送到手机上。
- 最后,C端APP用户 通过接收到的手机验证码向物联网中台发起 通过手机号码和手机验证码重置密码 请求,物联网中台接收到请求后进行手机号码与验证码校验,业务逻辑校验通过后重置C端APP用户关联的密码。
4.2 用户通过邮箱找回密码
流程说明:
- 首先,C端APP用户 向物联网中台发起 获取找回密码邮件验证码 请求,物联网中台接收到请求后产生与邮箱地址绑定的验证码并通过邮件平台发送到邮箱上。
- 其次,C端APP用户通过邮箱获得与邮箱关联的验证码,向物联网中台发起 通过邮箱和邮件验证码重置密码 请求。
- 最后,物联网中台接收到请求后进行邮箱地址与验证码校验,业务逻辑校验通过后重置C端APP用户的密码。
4.3 用户修改密码
流程说明:
- 首先,C端APP用户登录到物联网中台,获取到物联网中台的调用凭证以及刷新凭证。
- 其次,C端APP用户向物联网中台发起 新旧密码允许一致修改密码 或者 新旧密码不允许一致修改密码 请求。
- 最后,物联网中台接收到修改密码请求后,通过一系列参数校验后,在持久层更新C端APP用户的密码。
- 其中, 新旧密码允许一致修改密码 或者 新旧密码不允许一致修改密码 需要根据每款App需求进行使用。
4.4 用户临时密码登录
流程说明:
- 首先,C端APP用户在忘记密码的情况下向物联网中台发起 **通过邮件申请临时密码 ** 请求。
- 其次,C端APP用户 查看邮箱邮件得到临时密码。
- 再次,C端APP用户 在App中填入临时密码向物联网中台发起 使用临时密码登录 请求得到用户级调用凭证。
- 最后,C端APP用户 使用用户级调用凭证向物联网中台查询用户相关信息渲染App。
五、API列表
5.1 用户找回密码
5.1.1 找回密码–获取找回密码手机/邮件验证码
接口描述
C端用户在忘记密码的情况下,确定自己的账号是一个手机号时,准备使用手机号码找回密码,在进行重置密码之前需要证明手机的归属有效性,因此需要请求一个找回密码的验证码,使用手机号码会通过短信告知验证码,再使用验证码配合手机号进行重置密码;确定自己的账号是一个邮箱时,准备使用邮箱找回密码,因此需要调用此接口会通过邮箱向用户邮箱发送一个找回密码的链接,点击链接直接进入重置密码页面进行重置密码;手机邮箱二选一,参数优先识别手机号
请求方式
POST
请求地址
/v2/user/password/forgot
请求头
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
Content-Type | true | String | application/json |
请求参数
名称 | 位置 | 必填 | 类型 | 备注 |
---|---|---|---|---|
corp_id | body | true | String | 企业标识 |
phone | body | false | String | 手机号码 |
phone_zone | body | false | String | 手机区号,传phone之后必传 |
captcha | body | false | String | 手机图片验证码,传phone之后且获取到过多验证码之后必传 |
body | false | String | 邮箱 | |
local_lang | body | false | String | 本地语言代码 zh-cn:中国 en-us:美国 de:德国 se:瑞典 fr:法国 nl:荷兰 it:意大利 fi:芬兰 no:挪威 dk:丹麦 pl:波兰 es:西班牙 pt:葡萄牙 cz:捷克 sk:斯洛伐克 si:斯洛文尼亚 hr:克罗地亚 hu:匈牙利 ro:罗马尼亚 bg:保加利亚 ru:俄罗斯 |
请求示例:
{
"corp_id": "1235658fddf45fdse",
"phone": "13838383388",
"phone_zone": "+86",
"captcha": "894515",
"email":"liqinghua@xlink.cn",
"local_lang": "zh-cn"
}
返回参数说明
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
无 | 无 | 无 | 无 |
返回示例:
{
}
错误码:
错误码 | 描述 |
---|---|
4001001 | 请求数据字段验证不通过 |
4001002 | 请求数据必须字段不可为空 |
4031001 | 调用凭证权限被禁止访问 |
4031003 | 无效的调用凭证 |
4031002 | 需要调用凭证 |
4041001 | 接口不存在 |
5031001 | 系统错误 |
4031024 | 权限不足 |
4041011 | 用户不存在 |
4001031 | 手机未认证 |
4001052 | 手机短信已达到限额 |
4041010 | 企业不存在 |
4041019 | 邮箱不存在 |
4001032 | 邮箱未验证 |
5.1.2 找回密码–获取找回密码手机图片验证码
接口描述
C端用户使用手机号请求找回密码需要发送短信,当一个手机号发送短信达到一定次数以后,需要请求本接口生成图片验证码进行验证。
请求方式
POST
请求地址
/v2/user/password/captcha
请求头
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
Content-Type | true | String | application/json |
请求参数
名称 | 位置 | 必填 | 类型 | 备注 |
---|---|---|---|---|
corp_id | body | true | String | 企业标识 |
phone | body | true | String | 手机号码 |
phone_zone | body | true | String | 手机区号 |
请求示例:
{
"corp_id": "512456ewd2ff456e",
"phone": "13838383388",
"phone_zone": "+86"
}
返回参数说明
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
url | true | String | 图片验证码地址 |
返回示例:
{
"url": "http://www.baidu.com"
}
错误码:
错误码 | 描述 |
---|---|
4001001 | 请求数据字段验证不通过 |
4001002 | 请求数据必须字段不可为空 |
4031001 | 调用凭证权限被禁止访问 |
4031003 | 无效的调用凭证 |
4031002 | 需要调用凭证 |
4041001 | 接口不存在 |
5031001 | 系统错误 |
4031024 | 权限不足 |
4041011 | 用户不存在 |
4001031 | 手机未认证 |
4041010 | 企业不存在 |
5.1.3 找回密码–获取找回密码邮箱验证码
接口描述
C端用户在忘记密码的情况下,确定自己的账号是一个邮箱时,通过邮箱获取找回密码的验证码,验证码会以邮件方式进行告知;与5.3.1的区别在于,5.3.1是发送找回密码链接(链接中包含了有效信息)而5.3.3是发送验证码
请求方式
POST
请求地址
/v2/user/password/forgot/email_verifycode
请求头
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
Content-Type | true | String | application/json |
请求参数
名称 | 位置 | 必填 | 类型 | 备注 |
---|---|---|---|---|
corp_id | body | true | String | 企业标识 |
body | true | String | 邮箱 | |
local_lang | body | true | String | 本地语言代码 zh-cn:中国 en-us:美国 de:德国 se:瑞典 fr:法国 nl:荷兰 it:意大利 fi:芬兰 no:挪威 dk:丹麦 pl:波兰 es:西班牙 pt:葡萄牙 cz:捷克 sk:斯洛伐克 si:斯洛文尼亚 hr:克罗地亚 hu:匈牙利 ro:罗马尼亚 bg:保加利亚 ru:俄罗斯 |
请求示例:
{
"corp_id": "4562365df12fdffe2",
"email":"liqinghua@xlink.cn",
"local_lang": "zh-cn"
}
返回参数说明
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
无 | 无 | 无 | 无 |
返回示例:
{
}
错误码:
错误码 | 描述 |
---|---|
4001001 | 请求数据字段验证不通过 |
4001002 | 请求数据必须字段不可为空 |
4031001 | 调用凭证权限被禁止访问 |
4031003 | 无效的调用凭证 |
4031002 | 需要调用凭证 |
4041001 | 接口不存在 |
5031001 | 系统错误 |
4031024 | 权限不足 |
4041011 | 用户不存在 |
4041019 | 邮箱不存在 |
4001032 | 邮箱未验证 |
4041010 | 企业不存在 |
5.1.4 找回密码–通过手机/邮件验证码重置密码
接口描述
C端用户在忘记密码的情况下,确定自己的账号是一个手机号时,使用手机号以及手机验证码进行重新设置用户密码;确定自己的账号是一个邮箱时,使用邮箱以及邮箱验证码进行重新设置用户密码;手机邮箱二选一,参数优先识别手机号;其中通过邮箱重置密码来源于邮箱的找回密码链接
请求方式
POST
请求地址
/v2/user/password/foundback
请求头
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
Content-Type | true | String | application/json |
请求参数
名称 | 位置 | 必填 | 类型 | 备注 |
---|---|---|---|---|
corp_id | body | true | String | 企业标识 |
phone | body | false | String | 手机号码 |
phone_zone | body | false | String | 手机区号,传phone之后必传 |
body | false | String | 邮箱 | |
new_password | body | true | String | 新密码 |
verifycode | body | true | String | 手机/邮箱验证码 |
请求示例:
{
"corp_id": "1266565fdsed12d",
"phone": "13838383388",
"phone_zone": "+86",
"verifycode": "856396",
"email":"liqinghua@xlink.cn",
"new_password": "Test@#$%^&"
}
返回参数说明
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
无 | 无 | 无 | 无 |
返回示例:
{
}
错误码:
错误码 | 描述 |
---|---|
4001001 | 请求数据字段验证不通过 |
4001002 | 请求数据必须字段不可为空 |
4031001 | 调用凭证权限被禁止访问 |
4031003 | 无效的调用凭证 |
4031002 | 需要调用凭证 |
4041001 | 接口不存在 |
5031001 | 系统错误 |
4031024 | 权限不足 |
4041011 | 用户不存在 |
4001031 | 手机未认证 |
4001052 | 手机短信已达到限额 |
4041010 | 企业不存在 |
4001003 | 手机验证码不存在 |
5.2 用户修改密码
5.2.1 修改密码–新旧密码允许一致
接口描述
C端用户在登录的情况下,进行修改密码,需要传入原先密码;新密码允许与老密码一样
请求方式
PUT
请求地址
/v2/user/password/reset
请求头
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
Access-Token | true | String | 调用凭证 企业用户 |
Content-Type | true | String | application/json |
请求参数
名称 | 位置 | 必填 | 类型 | 备注 |
---|---|---|---|---|
old_password | body | true | String | 旧的密码 |
new_password | body | true | String | 新的密码 |
请求示例:
{
"old_password": "Test#$%^&*",
"new_password": "Test#$%^&*"
}
返回参数说明
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
无 | 无 | 无 | 无 |
返回示例:
{
}
错误码:
错误码 | 描述 |
---|---|
4001001 | 请求数据字段验证不通过 |
4001002 | 请求数据必须字段不可为空 |
4031001 | 调用凭证权限被禁止访问 |
4031003 | 无效的调用凭证 |
4031002 | 需要调用凭证 |
4041001 | 接口不存在 |
5031001 | 系统错误 |
4031024 | 权限不足 |
4041010 | 企业不存在 |
4041011 | 用户不存在 |
4001181 | 手机区号错误 |
4001008 | 帐号不合法 |
4001030 | 用户状态禁用 |
5.2.2 修改密码–新旧密码不允许一致
接口描述
C端用户在登录的情况下,进行修改密码,需要传入原先密码;新密码不允许与老密码一样
请求方式
PUT
请求地址
/v2/user/password/reset-not-same
请求头
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
Access-Token | true | String | 调用凭证 企业用户 |
Content-Type | true | String | application/json |
请求参数
名称 | 位置 | 必填 | 类型 | 备注 |
---|---|---|---|---|
old_password | body | true | String | 老密码 |
new_password | body | true | String | 新密码 |
请求示例:
{
"old_password": "Test#$%^&*",
"new_password": "Test#$%^&*TY@"
}
返回参数说明
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
无 | 无 | 无 | 无 |
返回示例:
{
}
错误码:
错误码 | 描述 |
---|---|
4001001 | 请求数据字段验证不通过 |
4001002 | 请求数据必须字段不可为空 |
4031001 | 调用凭证权限被禁止访问 |
4031003 | 无效的调用凭证 |
4031002 | 需要调用凭证 |
4041001 | 接口不存在 |
5031001 | 系统错误 |
4031024 | 权限不足 |
4041010 | 企业不存在 |
4041011 | 用户不存在 |
4001181 | 手机区号错误 |
4001008 | 帐号不合法 |
4001030 | 用户状态禁用 |
5.3 用户临时密码
5.3.1 通过邮件申请临时密码
接口描述
用户在忘记密码的情况下,可以通过邮件申请临时密码并且使用临时密码进行登录;该临时密码有效期为一个小时, 并且一个邮箱一个小时内只能申请两次临时密码;目前只有RB客户在使用
请求方式
POST
请求地址
/v2/user/temp_password/send/email
请求头
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
Content-Type | true | String | application/json |
请求参数
名称 | 位置 | 必填 | 类型 | 备注 |
---|---|---|---|---|
corp_id | body | true | String | 企业标识 |
body | true | String | 邮箱地址 | |
language | body | true | String | 指定邮件的语言,预留字段,目前只支持英文en-us |
请求示例:
{
"corp_id":"51231654fdsffwefdf",
"email":"liqinghua@xlink.cn",
"language":"en-us"
}
返回参数说明
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
无 | 无 | 无 | 无 |
返回示例:
{
}
错误码:
错误码 | 描述 |
---|---|
4001001 | 请求数据字段验证不通过 |
4001002 | 请求数据必须字段不可为空 |
4031001 | 调用凭证权限被禁止访问 |
4031003 | 无效的调用凭证 |
4031002 | 需要调用凭证 |
4041001 | 接口不存在 |
5031001 | 系统错误 |
4031024 | 权限不足 |
4041010 | 企业不存在 |
4041011 | 用户不存在 |
4001032 | 用户邮箱未认证 |
4001432 | 用户申请临时密码超过限制 |
5.3.2 使用临时密码登录
接口描述
用户在通过邮箱申请得到临时密码之后,使用临时密码进行登录;与此同时,该接口兼容了原始密码登录功能, 也就是说使用原始密码和临时密码均可以使用该接口进行登录;目前只有RB客户在使用
请求方式
POST
请求地址
/v2/user_auth/temp_password
请求头
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
Content-Type | true | String | application/json |
请求参数
名称 | 位置 | 必填 | 类型 | 备注 |
---|---|---|---|---|
corp_id | body | true | String | 企业标识 |
phone | body | false | String | 手机号码 |
phone_zone | body | false | String | 手机区号,使用手机号码登录时可选。 |
body | false | String | 邮箱地址 | |
password | body | true | String | 登录原始密码或者临时密码 |
resource | body | true | String | 用户登录源 |
请求示例:
{
"corp_id": "1234565e4f5dff",
"phone": "13838383388",
"phone_zone": "+86",
"email": "liqinghua@xlink.cn",
"password": "Test@#$%^&",
"resource": "TEST"
}
返回参数说明
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
user_id | true | Int | 用户标识 |
access_token | true | String | 调用凭证 |
refresh_token | true | String | 刷新凭证 |
expire_in | true | Int | 调用凭证有效期,单位秒 |
authorize | true | String | 用户认证码 |
is_temp_password | true | Boolean | 是否使用临时密码登录 |
返回示例:
{
"user_id": 123535554,
"access_token": "123565sdfsfsf4dsfsd45gggg",
"refresh_token": "123565sdfsfsf4dsfefdfwef",
"expire_in": 7200,
"authorize": "4562112sdfsdfsd",
"is_temp_password": true,
}
错误码:
错误码 | 描述 |
---|---|
4001001 | 请求数据字段验证不通过 |
4001002 | 请求数据必须字段不可为空 |
4031001 | 调用凭证权限被禁止访问 |
4031003 | 无效的调用凭证 |
4031002 | 需要调用凭证 |
4041001 | 接口不存在 |
5031001 | 系统错误 |
4031024 | 权限不足 |
4041010 | 企业不存在 |
4041011 | 用户不存在 |
4001124 | 账号未初始化密码 |
4001061 | 账号已被锁定, 多次输入错误密码导致 |
4001083 | 企业处于迁移状态 |
4001007 | 账号密码错误 |